/**
 * 
 */
package com.gr.staffpm.tasks.service;

import java.util.List;

import com.gr.staffpm.datatypes.Project;
import com.gr.staffpm.datatypes.Task;
import com.gr.staffpm.datatypes.TaskQueue;
import com.gr.staffpm.datatypes.User;


/**
 * @author Graham Rhodes 15 Jan 2011 19:11:09
 */
public interface TaskQueueService {

    TaskQueue getQueuedTask(int id);

    TaskQueue getQueuedTaskByTaskId(int id);

    List<TaskQueue> getQueuedTasksForProject(Project project);

    List<TaskQueue> getQueuedTasksForManager(User manager);

    void addTaskToQueue(Task task, User currentUser, User manager, String comment);

    List<TaskQueue> getQueuedTaskQueuesForManager(User user, int first, int count, String property, boolean ascending);

    void removeTaskFromQueue(TaskQueue queuedTask);

    void removeTaskFromQueue(Task queuedTask);

}
